package com.sora.basic.annotation;

import java.lang.annotation.*;

//表示当前注解可以作用在哪些地方
@Target({ElementType.METHOD})
//定义被它标记的注解能保留多久
@Retention(RetentionPolicy.RUNTIME)
//加了这个注解可以在生成api文档的时候，显示出来
@Documented
//表示这个注解可以被继承
@Inherited
public @interface PreAuthorize {
    //对于t_permission的name属性值
    String name() default "";
    //对于t_permission的sn属性值
    String sn() default "";
}

/*
@Retention(RetentionPolicy.SOURCE)：注解只保留在源文件，当Java文件编译成class文件的时候，注解被遗弃
@Retention(RetentionPolicy.CLASS)：注解被保留到class文件，但jvm加载class文件时候被遗弃，这是默认的生命周期
@Retention(RetentionPolicy.RUNTIME)：注解不仅被保存到class文件中，jvm加载class文件之后，仍然存在*/
